افزايش كارآئی برنامه های وب در ASP.NET 2.0 (بخش سوم)

تبلیغات در سایت ما

شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی

پشتيباني آنلاين
پشتيباني آنلاين
آمار
آمار مطالب
  • کل مطالب : 72
  • کل نظرات : 1
  • آمار کاربران
  • افراد آنلاین : 1
  • تعداد اعضا : 3
  • آمار بازدید
  • بازدید امروز : 34
  • بازدید دیروز : 10
  • ورودی امروز گوگل : 3
  • ورودی گوگل دیروز : 1
  • آي پي امروز : 11
  • آي پي ديروز : 3
  • بازدید هفته : 57
  • بازدید ماه : 379
  • بازدید سال : 8513
  • بازدید کلی : 335849
  • اطلاعات شما
  • آی پی : 3.12.148.180
  • مرورگر :
  • سیستم عامل :
  • امروز :
  • درباره ما
    شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی
    به وبلاگ من خوش آمدید امیدوارم لحظات خوبی رو در این وب داشته باشین برای همکاری بیشتر می تونین به ایمیل بنده پیغام بدین
    خبرنامه
    براي اطلاع از آپدیت شدن سایت در خبرنامه سایت عضو شويد تا جديدترين مطالب به ايميل شما ارسال شود



    امکانات جانبی

    افزايش كارآئی برنامه های وب در ASP.NET 2.0 (بخش سوم)

    Stress Testing
    پياده كنندگان برنامه های وب می توانند از ابزارهای تست متعدد به همراه برخی امكانات ارائه شده در فريمورك دات نت برای پروفايل كردن برنامه های ASP.NET استفاده نمايند . اغلب ، گذر از مرحله تست و  اعمال يك پل ارتباطی بين نتايج تست و برنامه وب كار زمان گيری است . به عنوان نمونه ممكن است در مرحله تست بتوان اطلاعات مهمی نظير TTFB ( برگرفته شده از  Average Time to first byte )  كه نشان دهنده مدت زمان ارسال درخواست و دريافت اولين بايت از سرويس دهنده است و يا TTLB ( برگرفته شده از  Average Time to last byte  ) كه  نشان دهنده  زمان ارسال درخواست و دريافت آخرين بايت از سرويس دهنده است را ركورد و ثبت نمود . ولی بدون استفاده از يك روش دقيق و صحيح اندازه گيری ، تشخيص پارامترهای تاثيرگذار در كاهش كارآئی يك برنامه وب كار مشكلی خواهد بود . 
    به عنوان مثال ، كاهش كارآئی يك برنامه وب ممكن است مربوط به سرعت پائين هارد ديسك ، تنظيمات ضعيف ASP.NET ، عدم طراحی صحيح بانك اطلاعاتی و يا عدم طراحی مناسب برنامه باشد . در واقع‌، تست كارآئی علم و دانش مختص به خود را دارد .
    برای انجام اكثر تست های اوليه ، می توان از يك سرويس دهنده اختصاصی و مجموعه ای از سرويس گيرندگان استفاده نمود كه از طريق يك شبكه سريع ايزوله شده با سرويس دهنده وب تعامل برقرار می نمايند . بدين منظور می توان از يك ابزار توليد load  كه بطور اتوماتيك مجموعه ای ‌از صفحات را از سرويس دهنده درخواست می نمايد استفاده كرد تا يك لود سنگين شبيه سازی گردد . ACT ( برگرفته شده از  Application Center Test ) و  WAST ( برگرفته شده از  Web Applications Stress Tool ) دو نمونه متداول در اين زمينه می باشند  . 
    با استفاده از ابزارهای فوق می توان شرايط حاكم بر يك برنامه وب در دنيای واقعی را شبيه سازی نمود ( تداوم درخواست صفحات از طريق چندين اتصال همزمان ) . اكثر ابزارهای توليد load ، فعاليت ها و كارهائی را كه انجام می دهند ثبت می نمايند تا امكان بررسی آنها توسط طراحان و پياده كنندگان وجود داشته باشد .
    علاوه بر برنامه های فوق ، می توان نتايج را با استفاده از  Windows performance counters ثبت و مشاهده كرد .

    performance counter
    برنامه performance counters  ويندوز يكی از ابزارهای متداول موجود برای اندازه گيری كارآئی يك برنامه می باشد . با استفاده از برنامه فوق می توان به تعداد دلخواه counter را اضافه و يا مستقيما" كارآئی را از طريق جعبه محاوره ای system performance اندازه گيری كرد .
    برای فعال كردن برنامه فوق می توان  از مسير Settings|Control Panel |Administrative Tools |Performance استفاده كرد.  اين برنامه  به صورت پيش فرض صرفا" كارآئی  پردازشگر اصلی سيستم و ديسك را اندازه گيری می نمايد .
    پس از نصب ASP.NET ، مجموعه ای counter مفيد برای رديابی و ارزيابی كارآئی برنامه های وب نيز نصب می گردد . برای اضافه كردن counter ، با كليك (سمت راست)  بر روی ليست counter و انتخاب properties ، می توان گزينه های مختلفی را پيكربندی نمود ( نظير تغيير شكل ظاهری نمودار و نحوه ثبت اطلاعات در قالب يك گزارش ) .
    يكی از مهمترين گزينه ها بخش مربوط به Data است كه با استفاده از آن می توان به ليست موجود  يك counter را اضافه و يا از آن حذف نمود . برای شروع ، می توان تمامی كانتر های پيش فرض را حذف و با استفاده از گزينه Add موارد دلخواه را به ليست اضافه نمود  .

     اضافه كردن يك counter
    شكل 1 : اضافه كردن يك counter جديد

    در جعبه محاوره ای Add Counter ، چندين ويژگی مهم  از جمله امكان مشخص كردن نام كامپيوتر وجود دارد . به عبارت ديگر ، شما می توانيد كارآئی يك كامپيوتر راه دور را مانيتور نمائيد . مانيتورينگ كارآئی سرويس دهنده وب از طريق يك سرويس گيرنده ايده آل است چراكه احتمال تاثير عملكرد مانيتورينگ بر روی سرويس دهنده از بين خواهد رفت . ويژگی مهم بعدی ، performance object است كه با استفاده از آن می توان يك گروه counter را متناسب با شی مورد نظر انتخاب نمود . گروه ASP.NET اطلاعات كاملی را در خصوص كارآئی كلی برنامه های ASP.NET ارائه می نمايد . اين در حالی است كه گروه ASP.NET Application اطلاعاتی را در رابطه با يك برنامه وب خاص ارائه می نمايد .
    برخی از انواع مفيد كانترها به همراه گروه ، نام counter و عملكرد هر يك از آنها در جدول 1 نشان داده شده است .
    سطرهای ستاره دار، كانترهائی را مشخص می نمايد كه با استفاده از آنها می توان اشكال زدائی يك مسئله را انجام داد . ساير سطرها ، كانترهائی را نشان می دهد كه استفاده از آنها همواره مفيد می باشد .

     

    گروه

    counter

    عملكرد

    processor % CPU Utilization

    درصد استفاده از CPU را نشان می دهد . در صورتی كه استفاده از CPU در يك بازه زمانی صرفنظر از load سرويس گيرنده ثابت باقی بماند ، نشان دهنده انتظار يك برنامه برای استفاده از يك منبع محدود است .  

    ASP.NET Requests Queued

    تعداد درخواست های در انتظار پردازش را مشخص می نمايد . از counter فوق برای مشخص كردن حداكثر load سرويس دهنده وب استفاده می گردد .

    ASP.NET * Application Restarts ,
    Worker Process Restarts

    تعداد دفعاتی كه پردازه ASP.NET راه اندازی مجدد و يا reset می گردد را مشخص می نمايد . اين counter نشاندهنده بروز مسائل ناخواسته است.

    ASP.NET Applications Requests/Sec

    حداكثر توان عملياتی برنامه وب را مشخص می نمايد .

    ASP.NET Applications * Errors Total

    تعداد خطاء توليد شده توسط يك برنامه وب را مشخص می نمايد . مقدار اين counter در عمل می بايست صفر و يا نزديك به صفر باشد .

    ASP.NET Applications Pipeline Instance Count

    تعداد درخواست pipeline يك برنامه را مشخص می نمايد و از آن برای مشخص شدن حداكثر درخواست همزمانی كه می توان به آنها پاسخ داده شود ، استفاده می گردد .
    در صورتی كه مقدار اين counter تحت يك load پائين باشد ، نشان دهنده استفاده مطلوب از CPU است . 

    System * Context Switches/sec

    پارامتر فوق تعداد دفعات سوئيچينگ thread context را نشان می دهد . در صورتی كه مقدار اين پارامتر زياد باشد ،  thread های مختلف برای استفاده از  يك منبع محدود با يكديگر رقابت می نمايند .

         جدول 1 : ليست برخی كانترهای مفيد   

    دستيابی به  كلاس های performance counters از طريق كد
    با توجه به اين كه  ASP.NET بخشی از فريمورك دات نت است ، پياده كنندگان برنامه های وب می توانند در صفحات وب نوشته شده با استفاده از فناوری ASP.NET به تمامی كلاس های موجود در فريمورك دات نت دستيابی داشته باشند . اين بدان معنی است كه از طريق يك صفحه وب ASP.NET می توان عمليات متعددی نظير پردازش تصاوير ، نوشتن در event log و يا خواندن و انعكاس performance counters در خروجی را انجام داد . گرچه استفاده از امكاناتی از اين قبيل ممكن است چالش های امنيتی مختص به خود را دارا باشد ولی با رعايت نكات ايمنی می توان پتانسيل برنامه های وب را در جهت ارائه خدمات مطلوب و بهينه به كاربران افزايش داد .
    به عنوان نمونه می توان يك performance counter  جديد را اضافه و يا مقدار متناظر با يك performance counter را بازيابی و در ادامه آن را در يك صفحه وب و يا يك برنامه desktop نمايش داد .
    برای استفاده از پتانسيل فوق ، از namespace با نام  System.Diagnostics  استفاده می گردد . ليست برخی از كلاس های دات نت به منظور تعامل با performance counter در  جدول 2 نشان داده شده است .

     

    كلاس

    عملكرد

    PerformanceCounter

    ارائه يك  counter خاص كه شامل اطلاعاتی نظير نام counter و نوع داده ئی است كه می بايست ثبت گردد .

    PerformanceCounterCategory

    يك گروه counter را  كه شامل يك و يا چندين counter است ، مشخص می نمايد .

    CounterCreationData

    ارائه داده مورد نياز برای ايجاد يك counter جديد .

    CounterSample

    ارائه مجموعه ای از اطلاعات ثبت شده توسط counter .
    در اين رابطه يك RawValue ( شماره ثبت شده ) ، يك TimeStamp ( زمانی كه مقدار ثبت شده است ) و اطلاعات اضافه ای در رابطه با نوع counter و نحوه خواندن آن را ارائه می نمايد .

    جدول 2 : ليست برخی كلاس های دات نت برای كار با Performance counter

    مثال : نمايش ظرفيت آزاد حافظه فيزيكی در يك صفحه وب
    در كد فوق ، ظرفيت آزاد حافظه فيزيكی بر حسب مگابايت در صفحه وب نمايش داده می شود . برای انجام اين كار ، در ابتدا يك نمونه از كلاس PerformanceCounter به همراه نام گروه Memory و counter با نام Available MBytes  ايجاد شده است . برای ايجاد يك نمونه از كلاس PerformanceCounter از كد زير استفاده شده است .

     

     Dim perfFreeMem as New PerformanceCounter("Memory", "Available MBytes")

    بدين ترتيب يك شی با نام perfFreeMem ايجاد كه  Performance counter  مورد نظر را ارائه می نمايد . برای خواندن مقدار جاری counter از متد  NextValue استفاده می گردد تا مقدار بعدی Performance counter را برگرداند . با نسبت دادن مقدار برگردانده شده به خصلت Text كنترل سرويس دهنده Label ، امكان مشاهده آن در خروجی فراهم می گردد .

     

    <%@ Import Namespace = System.Diagnostics %>


    Free Memory (in MB):

    مراحل انجام كار در مثال فوق به شرح زير است :

    • مرحله اول : استفاده از namespace با نام System.Diagnostics در ابتدای برنامه

    • مرحله دوم : ايجاد و مقداردهی مناسب يك نمونه از كلاس PerformanceCounter تا قادر به خواندن counter با نام Available MBytes از گروه Memory  باشد .

    • مرحله سوم : نسبت دادن مقدار برگردانده شده توسط متد NextValue به خصلت Text كنترل سرويس دهنده label با نام lblFreeMem

    در بخش چهارم به بررسی امكانات caching  در ASP.NET 2.0 خواهيم پرداخت .


    بخش نظرات این مطلب


    برای دیدن نظرات بیشتر روی شماره صفحات در زیر کلیک کنید

    نام
    آدرس ایمیل
    وب سایت/بلاگ
    :) :( ;) :D
    ;)) :X :? :P
    :* =(( :O };-
    :B /:) =DD :S
    -) :-(( :-| :-))
    نظر خصوصی

     کد را وارد نمایید:

    آپلود عکس دلخواه:







    تبلیغات
    نویسندگان
    ورود کاربران
    نام کاربری
    رمز عبور

    » رمز عبور را فراموش کردم ؟
    عضويت سريع
    نام کاربری
    رمز عبور
    تکرار رمز
    ایمیل
    کد تصویری
    تبادل لینک هوشمند

      تبادل لینک هوشمند
      برای تبادل لینک 

       ابتدا ما را با عنوان

      هاستینگ رایگان

      و آدرس

       http://www.iran2.net

      لینک نمایید سپس مشخصات

       لینک خود را در زیر نوشته

       . در صورت وجود لینک ما

      در سایت شما لینکتان

      به طور خودکار در سایت ما

      قرار میگیرد.






    آخرین نظرات کاربران
    Moohammad - سلام دوست گلم خوبی؟

    وبلاگت خیلی خوبه. به منم سر بزن خوشحال میشم نظر بدی

    تبادل لینک هم تو سایتم هست



    - 1393/9/15
    عنوان آگهی شما

    توضیحات آگهی در حدود 2 خط. ماهینه فقط 10 هزار تومان

    عنوان آگهی شما

    توضیحات آگهی در حدود 2 خط. ماهینه فقط 10 هزار تومان

    به شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی امتیاز دهید